李守中

Windows 系统及相关功能

Table of Contents

1. Windows 通用

1.1. 进不去 BIOS 的问题

电脑可以进系统,但无法使用正确的快捷键进入 BIOS 配置。在电源选项里把 快速启动 关闭就行。

1.2. 以管理员身份登录系统

以管理员身份运行 CMD 并执行 net user administrator /active:yes

此时管理员账户已开启,在开始菜单点击用户头像就可以看到切换选项。

1.3. 激活信息查询

用 PowerShell 执行 slmgr /dlv 可以查看详细的激活信息。

注册表定位到 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform 下,属性 BackupProductKeyDefault 对应的值是激活码。

1.4. 网络驱动器自动断线的问题

在注册表里更改自动断开连接的时间即可:

  • 注册表路径: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanworkstation\parameters
  • 值: KeepConn
  • 数据类型: REG_DWORD
  • 范围: 1 - 65535 seconds
  • 默认值:600s = 10min

1.5. 修改文件的默认打开程序

涉及的注册表项目有:

  • HKEY_LOCAL_MACHINE\Software\Classes 包含适用于所有用户的默认的文件关联设置
  • HKEY_CURRENT_USER\Software\Classes 包含只适用当前用户的文件关联的设置 (覆盖 HKEY_LOCAL_MACHINE 项中的设置)
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts 包含用户自定义的打开方式 (勾选始终使用该方式打开时指定的程序)

在上述注册表路径中删除对应的项目即可。

1.6. 让程序自动启动的方法

1.6.1. 使用 msconfig

用 Win+R 调出 '运行' 界面之后,执行 msconfig 打开系统设置,切换到 '启动' 选项卡内可以为程序设置开机启动。

能在这里显示出的软件都是在注册表中有定义的软件,如果软件未在注册表中注册,那么这里可能找不到对应的软件。

1.6.2. 使用开始菜单

对要配置开机启动的程序生成快捷方式后,放到下面指定的目录中。

对当前用户生效: %appdata%\Microsoft\Windows\Start Menu\Programs\StartUp

对所有用户生效: %ProgramData%\Microsoft\Windows\Start Menu\Programs\StartUp

1.6.3. 使用注册表

可以在以下的注册表路径中配置要启动的程序:

  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run (常用)
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
  • HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon\Userinit
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run (常用)
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce

只需要在上面列表中给出的目录下添加一个字符串值,将需要启动的应用程序路径添加到值即可。

1.7. 删除 windows server 备份

wbadmin.exe 是用来管理备份和恢复系统、文件的软件。

vssadmin.exe 也是用来管理 VSS 服务的软件,但是查了很多博客都说这个软件自 Win Server 2008 似乎已经被放弃了。

虽然这个软件依旧可以用,但是用这个软件操作完之后并不能在 Windows Server 备份的 UI 界面上显示正确的结果。

即使操作完再用 wbadmin 检查也不能得到正确输出,但操作确实成功了。

所以尽量不要用 vssadmin.exe,要用 wbadmin.exe 来管理备份。

计算机管理 -> Windows Server 备份 -> 本地备份 选项卡里可以看到所有备份,但是删除备份只能手动敲命令。

用 wbadmin 删除备份之后,在 UI 里可以看到硬盘占用减少了,但是备份数量要刷新之后才能正确显示。

1.8. 删除冗余的开机启动项

更新系统 / 软件抽风之后,有时会重复设置开机启动,也就是在注册表里添加开机启动项的路径。

重复的开机启动项可能在注册表的以下两个路径中:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

注: 大概率在第一条路径中。

在路径下找到重复项删除即可。

如果无法判断应该删除哪个,那么可以全部删除,然后重新设置开机启动。

1.9. 解除硬盘的写保护

SSD 或者 HDD 过热时会主动断电,可能造成 FTL 表损坏,进而出现掉盘。

如果系统盘掉盘则会蓝屏,重启则会进入 BIOS (并且在 BIOS 里依旧找不到装有系统的硬盘);非系统盘掉盘则无法在文件管理器中找到盘符。在掉盘时马上重启系统的话,系统可能依旧无法认到盘。因为硬盘的 FTL 表必须完好,硬盘才能正常工作,但重建 FTL 的过程中会扫全盘数据。而扫全盘数据,很花时间。

所以此时最好的做法是就让机器开着,能进系统的就进系统,不能进系统的就进 BIOS 等着,等上半个小时再重启。不要频繁重启,重启会打断 FTL 的重建过程,这可能让硬盘丢数据。

即使认到盘了,也有可能出现写保护。可以打开 CMD 根据以下步骤操作关闭写保护:

C:\Users\lsz>diskpart

DISKPART> list disk

  Disk ###  Status         Size     Free     Dyn  Gpt
  --------  -------------  -------  -------  ---  ---
  Disk 0    Online         1863 GB      0 B        *
  Disk 1    Online          476 GB      0 B        *
  Disk 2    Online          465 GB      0 B        *

DISKPART> select disk 1

Disk 1 is now the selected disk.

DISKPART> attributes disk
Current Read-only State : Yes
Read-only  : Yes
Boot Disk  : No
Pagefile Disk  : No
Hibernation File Disk  : No
Crashdump Disk  : No
Clustered Disk  : No

DISKPART> attributes disk clear readonly

Disk attributes cleared successfully.

DISKPART> attributes disk
Current Read-only State : No
Read-only  : No
Boot Disk  : No
Pagefile Disk  : No
Hibernation File Disk  : No
Crashdump Disk  : No
Clustered Disk  : No

1.10. 现多个系统引导

以管理员身份打开命令提示符执行 bcdedit 命令后,正常来说会得到以下输出:

Windows 启动管理器
--------------------
标识符                  {bootmgr}
device                  partition=\Device\HarddiskVolume1
path                    \EFI\MICROSOFT\BOOT\BOOTMGFW.EFI
description             Windows Boot Manager
locale                  zh-CN
inherit                 {globalsettings}
default                 {current}
resumeobject            {7b9d4bf4-62ac-11ea-b5c0-80fa5b564e9b}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 30

Windows 启动加载器
-------------------
标识符                  {current}
device                  partition=C:
path                    \Windows\system32\winload.efi
description             Windows 10
locale                  zh-CN
inherit                 {bootloadersettings}
recoverysequence        {7b9d4bf6-62ac-11ea-b5c0-80fa5b564e9b}
displaymessageoverride  StartupRepair
recoveryenabled         Yes
isolatedcontext         Yes
allowedinmemorysettings 0x15000075
osdevice                partition=C:
systemroot              \Windows
resumeobject            {7b9d4bf4-62ac-11ea-b5c0-80fa5b564e9b}
nx                      OptIn
bootmenupolicy          Standard

如果有多余的输出则为其他系统的开机引导。

bcdedit /delete <id> /f 删除不需要的引导项,其中 <id>resumeobject 中对应的字符。

1.11. BitLocker 相关组策略

需要配置的组策略的路径为: 计算机配置 -> 管理模板 -> Windows 组件 -> BitLocker 驱动器加密

在 'BitLocker 驱动器加密' 这个根路径下:

  • '此计算机锁定时禁用新的 DMA 设备': 在有 Thunderbolt 的设备上这是一个可以增强安全性的配置,用户登录以前禁止上次锁定之后新添加的设备使用 DMA。

'BitLocker 驱动器加密' -> '操作系统驱动器':

  • '启动时需要附加身份验证': 开启后可以为 BitLocker 设置一个 Pre-Boot PIN。BitLocker 结合用户输入的 PIN 和 TPM 保存的密钥才能解密硬盘 (单有 TPM 中的密钥无法解密硬盘)
    • manage-bde -protectors -add c: -TPMAndPIN 可以为已经加密的 C 盘添加 Pre-Boot PIN
    • manage-bde -status 输出中的 Key Protector 字段显示了用户可以以什么样的方式解密硬盘
    • manage-bde -changepin c: 可以修改 Pre-Boot PIN
    • manage-bde -protectors -add c: -TPM 可以移除 Pre-Boot PIN (也就是开机自动解密)
    • 以上命令需要管理员权限
  • '启用 BitLocker 身份验证需要在平板电脑上预启动键盘输入': 平板电脑上输入 Pre-Boot PIN 时会弹虚拟键盘。对于有内置键盘的设备 (比如笔记本电脑) 允许使用外接的 USB 键盘输入密码
  • '允许增强型启动 PIN': 让 Pre-Boot PIN 可以包含大小写字母、符号、数字和空格

1.12. 配置 BitLocker 后需要手动启用 Windows 恢复环境

(配置 BitLocker 的时候会提示 '你将不再能够使用 Windows 回复环境,除非手动启用 Windows 恢复环境并将其移至系统驱动器')

在系统盘上建一个恢复分区 (用 diskpart 命令),以管理员身份执行 reagentc /enable 启用恢复分区 reagentc /info 查看恢复分区信息。

1.13. 删除已经保存的 Windows 凭据 (已保存的账户与密码)

凭据管理的路径为 控制面板 -> 用户帐户 -> 凭据管理器 ,也可以使用 Win+R 执行 control userpasswords2 后再从 高级 -> 管理密码 打开凭据管理器。可以从这里删除不再需要的凭据。

其中, Windows 凭据 可以用于连接到 smb 共享或使用 rdp 登录到其他的主机。

1.14. 执行 smb 目录中的 exe 文件时弹出安全警告对话框

双击 smb 目录中的 exe 文件会弹出一个「打开文件-安全警告」对话框,下方有小字:

「此文件位于你本地网络之外的位置。来自你无法识别的位置的文件可能会损害你的电脑。请仅在你信任该位置时才打开此文件。」

要解决这个问题,需要用 Win+R 执行 inetcpl.cpl 或从 控制面板 -> 网络和 Internet -> Internet 选项 打开 Internet 属性 对话框。

在这个对话框内的 安全 -> 选择一个区域以查看或更改安全设置 -> 选中 本地 Intranet -> 点击 站点 -> 点击 高级 进入添加可信网站的对话框。

将 smb server 的 IP 或域名添加到网站列表中即可在执行 smb 中的 exe 文件时不弹出安全警告对话框。

2. Windows 10/11/Server2016,2019,2022

2.1. 禁用空耗系统资源的定时任务

通过任务管理器看到,有一个名为 Microsoft Compatibility Telemetry 的进程经常出现,而且每次出现都会占用很多资源,导致 CPU 或磁盘利用率 100%。

Microsoft Compatibility Telemetry 的中文释义是 微软兼容性遥测

打开 控制面板 -> 系统和安全 -> 管理工具 -> 计划任务 ,再进入 任务计划程序库 -> Microsoft -> Windows -> Application Experience 。在中间的窗格中可以看到 Microsoft Compatibility Appraiser 任务的描述为:

如果已选择加入 Microsoft 客户体验改善计划,则会收集程序遥测信息。

显然,用户并不希望微软收集用户的信息。选中这个计划任务,再在右侧窗格找到 所选项 点击 禁用 这个任务就不会再被触发了。

2.2. 任务管理器中不显示硬盘负载

这个问题大多出现在 Windows Server 上面。

以管理员启动 PowerShell 执行 diskperf -Y

2.3. 在锁屏界面中无法通过键盘按键唤出密码输入框

设置 -> 账户 -> 登陆选项 -> 隐私 -> 更新或重启后,使用我的登陆信息自动完成设备设置并重新打开我的应用 取消勾选。

2.4. 用户账户开机后自动登入 (启动用户登入才会自动启动的程序)

有些程序只有在用户登入之后才会启动,并且这是自动启动的唯一方式。

一个反例是 V2rayN。这个程序可以使用任务计划程序配置为在开机时,不论用户是否登入都以该用户的身份启动 V2rayN。但在用户真正登入后,无法在右下角的图标托盘中找到 V2rayN 程序的图标。此时可以从任务管理器中看到 V2rayN 程序已经启动。

如果此时再启动一个 V2rayN 则会导致 V2rayN 报错,内容为 v2fly/xray 内核无法监听对应端口。因为开机时启动的 V2rayN 程序已经启动了 v2fly/xray 来监听相应端口,用户登入后启动的 V2rayN 依旧试图启动新的 v2fly/xray 进程来监听已经被监听了的端口,才导致了报错。

所以,用户登入后启动 V2rayN 是让 V2rayN 正确自动启动的唯一方式。为了让程序正确地随机器开机而自动启动,就需要让用户在开机后自动登录。

可以使用微软官方出品的 SysinternalsSuite 套件中的 Autologon.exe/Augologon64.exe 程序来实现开机后用户自动登入的功能:

  1. 双击 Autologon.exe/Augologon64.exe
  2. 填入用户名和密码,点击 Enable 即可 (密码会被加密存储在上述注册表路径中)

注意,Autologon 不会验证提交的凭据,也不会验证指定的用户帐户是否允许登录到计算机。尽管密码在注册表中作为 LSA 机密 加密,但具有管理权限的用户可以轻松检索和解密密码。

若要关闭自动登录,则需要在输入用户名之后点击 disable 。此外,如果在系统执行自动登录之前按住 Shift 键,则将为该登录禁用自动登录。

也可以使用手动配置注册表的方式来完成开机后用户自动登录的功能,以下是需要配置的注册表内容:

(太麻烦,推荐使用 SysinternalsSuite 里的 Autologon.exe)

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"AutoAdminLogon"="1"
"DefaultUserName"="<username>"
"DefaultPassword"="<password>"
; 如果加入了域,还需要下面这条
; "DefaultDomainName"="<fqdn>"

如果手动操作注册表的话,注意上面三 (或四) 个项目的类型都是字符串,即 REG_SZ 类型。可以先到对应注册表路径中看一下这些项目是否存在,原始值是什么。

2.5. 开始菜单出现 ms-resource:applistname

在设置里看到这个应用的信息为人脉应用。无法使用右键选项卸载。

下面提供卸载方法:

以管理员身份运行 PowerShell,执行 Get-AppxPackage -AllUsers 获取系统所有已安装应用列表,从列表中找到要卸载的应用的全称,对应 PackageFullName 条目。可以把结果复制到记事本中查找关键字。

找到应用包全名称后,执行 Remove-AppxPackage <PackageFullName> 将 <PackageFullName> 替换为应用包全称即可卸载指定应用。

其他诸如照片、xbox 与天气等应用也能通过这个方法卸载。

2.6. 文件资源管理器导航窗格中 OneDrive - Personal 点击无反应

OneDrive 会自动强制更新到最新版,而最新版 OneDrive 有 Bug: 文件资源管理器导航窗格中的 OneDrive - Personal 条目在系统注册表中没有相应的键值定义。

这个问题目前已知在 Windows LTSC 2019, LTSC 2021 两个版本的 LTSC 系统中都存在。

解决办法: 将正常 OneDrive 注册表键值合并到最新版中。

注: 网上有教程说,通过编辑组策略的方式让 OneDrive 更新延期圈的版本而不更新生产圈的版本,以使得 OneDrive 停留在没有 Bug 的版本。这个方法没有用,因为目前已知 OneDrive 22.077.0410 在 LTSC 中没有 Bug,而这个版本即使在延期圈也会被更新到有 Bug 的 22.196.0918.0001 版本。所以,只能靠合并注册表的方式来修复此 Bug。

以下是正常 OneDrive 注册表的键值,将文本保存到 onedrive_repair.reg 文件中双击运行即可:

Windows Registry Editor Version 5.00

; for 64bit OneDrive
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{A52BBA46-E9E1-435f-B3D9-28DAA648C0F6}]
"Attributes"=dword:00000001
"Category"=dword:00000004
"DefinitionFlags"=dword:00000040
"Icon"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,\
  00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,69,00,\
  6d,00,61,00,67,00,65,00,72,00,65,00,73,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,\
  00,31,00,30,00,34,00,30,00,00,00
"LocalizedName"=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,\
  6f,00,6f,00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,\
  00,5c,00,53,00,65,00,74,00,74,00,69,00,6e,00,67,00,53,00,79,00,6e,00,63,00,\
  43,00,6f,00,72,00,65,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,00,31,00,30,00,32,\
  00,34,00,00,00
"LocalRedirectOnly"=dword:00000001
"Name"="OneDrive"
"ParentFolder"="{5E6C858F-0E22-4760-9AFE-EA3317B67173}"
"ParsingName"="shell:::{018D5C66-4533-4307-9B53-224DE2ED1FE6}"
"RelativePath"="OneDrive"

; for 32bit OneDrive
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{A52BBA46-E9E1-435f-B3D9-28DAA648C0F6}]
"Attributes"=dword:00000001
"Category"=dword:00000004
"DefinitionFlags"=dword:00000040
"Icon"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,\
  00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,69,00,\
  6d,00,61,00,67,00,65,00,72,00,65,00,73,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,\
  00,31,00,30,00,34,00,30,00,00,00
"LocalizedName"=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,\
  6f,00,6f,00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,\
  00,5c,00,53,00,65,00,74,00,74,00,69,00,6e,00,67,00,53,00,79,00,6e,00,63,00,\
  43,00,6f,00,72,00,65,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,00,31,00,30,00,32,\
  00,34,00,00,00
"LocalRedirectOnly"=dword:00000001
"Name"="OneDrive"
"ParentFolder"="{5E6C858F-0E22-4760-9AFE-EA3317B67173}"
"ParsingName"="shell:::{018D5C66-4533-4307-9B53-224DE2ED1FE6}"
"RelativePath"="OneDrive"

3. Windows 7/Server2008R2/Server2012R2

3.1. windows 2008 R2 断电重启后进入修复模式

在命令提示符使用如下两个命令可以禁止进入修复模式:

bcdedit /set {default} bootstatuspolicy ignoreallfailures
bcdedit /set {current} recoveryenabled No

可以用如下命令恢复其原本的值:

bcdedit /set {default} bootstatuspolicy IgnoreShutdownFailures
bcdedit /set {current} recoveryenabled Yes

如果已经进入修复模式,那么点击命令提示符,执行下列命令即可:

Bootrec /fixmbr
Bootrec /fixboot
bootrec /RebuildBcd

3.2. 禁用空耗系统资源的定时任务

打开 控制面板 -> 系统和安全 -> 管理工具 -> 计划任务 ,再进入 任务计划程序库 -> Microsoft -> Windows 在中间的窗格中可以看到 AitAgentProgramDataUpdater 两个任务都会收集遥测信息 (就是把系统及程序的相关信息上传到微软)。

显然,用户并不希望微软收集用户的信息。选中这两个计划任务,再在右侧窗格找到 所选项 点击 禁用 这个任务就不会再被触发了。

3.3. 安装 .net 框架时报 时间戳签名和/或证书无法验证或格式错误

下面的用法只适用于 Windows Server 2008R2 SP1 或者 Windows 7 SP1,注意必须安装 SP1 才行。

解决方法是安装下面列出的两个补丁包,注意选对操作系统和架构,Windows 7 和 Server 2008R2 的补丁包是同一个文件:

https://www.catalog.update.microsoft.com/search.aspx?q=kb4474419

https://www.catalog.update.microsoft.com/search.aspx?q=4490628



Last Update: 2024-02-04 Sun 22:16

Generated by: Emacs 28.2 (Org mode 9.5.5)   Contact: [email protected]

若正文中无特殊说明,本站内容遵循: 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议